\documentclass{beamer}
\usetheme{PaloAlto}
\usepackage[UTF8, noindent]{ctexcap}
\begin{document}
\title{基于 x86 体系机构的 \emph{Simple} 操作系统设计与实现}
\institute{河海大学}
\author{戴政奕}
\date{\today}
\begin{frame}
    \titlepage
\end{frame}
\section{简介}
\begin{frame}
    \frametitle{最简操作系统内核需要有什么}
    操作系统是介于软硬件之间的中间层，为了支撑程序用户程序的运行，一个完整的操作系统内核需要包含以下部分：
    \begin{itemize}
        \item{设备驱动}
        \item{内存管理}
        \item{进程、线程}
        \item{文件系统}
    \end{itemize}
    其中，中断、异常贯穿于操作系统内核的始终。

    操作系统内核的一切功能，最终被打包成系统调用对上层应用提供。
    
    为了方便应用程序使用，系统调用被封装成操作系统 API。

    为了让同一份程序源代码在不同的操作系统之间移植，操作系统 API 进一步被封装为高级语言库（MSVC、GLIBC）。
\end{frame}

\section{漫长的准备}
\begin{frame}
    \frametitle{漫长的准备}
    \begin{itemize}
        \item{MBR}：把 boot loader 搬到内存
        \item{boot loader}：
        \begin{itemize}
            \item{初始化 CPU 运行环境}：16 位实模式 $\rightarrow$ 32 位保护模式
            \item{初始化内存}：物理内存信息、初始页表
            \item{把操作系统搬到内存并解析}：磁盘驱动、二进制文件规范
        \end{itemize}
    \end{itemize}
    boot loader 几乎就是一个极简操作系统内核了。
\end{frame}

\section{中断、异常}
\begin{frame}
    \frametitle{中断、异常}
    \begin{itemize}
        \item 中断处理流程
        \item 特权级变换
        \item 中断硬件
        \item 最重要的两个中断（异常）：缺页故障、时钟中断
    \end{itemize}
\end{frame}

\section{内存管理}
\begin{frame}
    \frametitle{内存管理}
    \begin{itemize}
        \item 物理内存管理
        \item 请求分页
        \item 栈
        \item 堆
        \item 内存保护
    \end{itemize}
\end{frame}

\section{进程、线程}
\begin{frame}
    \frametitle{进程、线程}
    \begin{itemize}
        \item 进程：容纳线程的容器（空壳）
        \item 线程：现代操作系统上真正的执行流
        \item PCB 和 FCB
    \end{itemize}
\end{frame}
\section{文件系统}
\begin{frame}
    \frametitle{文件系统}
    \begin{itemize}
        \item 底层磁盘驱动
        \item 文件系统类型
        \item FCB
        \item 缓存
    \end{itemize}
\end{frame}
\end{document}